/*
 * AIChessTable.h
 *
 *  Created on: 11 Apr 2011
 *      Author: sinan
 */

#ifndef AICHESSTABLE_H_
#define AICHESSTABLE_H_

#include "Tree.h"
#include "../Classes/ChessMan.h"
#include "../Classes/ChessTable.h"



class AIChessTable {
public:

//	vector<Movement> FindAllMovements(ChessMan chessTableMatrix[8][8], ChessManColor cmColor);
	//bu fonksiyon gidilen ve gelinen yer listelerini döndürecek.
//	vector<ChessTableCoordinate> GetAllSelfChessMan(ChessMan chessTableMatrix[8][8], ChessManColor cmColor);
	Tree GetMinMaxTree(ChessMan chessTableMatrix[8][8], ChessManColor color, int depth);
	bool GetBestValueOfMinMaxTree(ChessMan chessTableMatrix[8][8], ChessManColor color);
	int GetChessTableValue(ChessMan matrix[8][8], ChessManColor cmColor);
	Tree GetMaxValueOfTree(Tree node);
	Tree GetMinValueOfTree(Tree node);
	AIChessTable();
	virtual ~AIChessTable();
	static int bestMax;
	static int bestMin;
};

#endif /* AICHESSTABLE_H_ */
